package com.xczl.demo.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.xczl.demo.domain.Goods;
import com.xczl.demo.domain.filter.GoodsFilter;

public interface GoodsDao {

	/**
	 * 插入商品
	 * 
	 * @param goods
	 */
	void insertGoods(Goods goods);

	/**
	 * 删除商品
	 * 
	 * @param id
	 */
	void deleteGoods(int id);

	/**
	 * 更新商品
	 * 
	 * @param goods
	 */
	void updateGoods(Goods goods);

	/**
	 * 根据ID查询商品
	 * 
	 * @param id
	 * @return
	 */
	Goods findById(int id);

	/**
	 * 更新状态
	 * 
	 * @param state
	 * @param id
	 */
	void updateState(@Param("state") int state, @Param("id") int id);

	/**
	 * 根据商品分类查询商品数量
	 * 
	 * @param cateId
	 * @return
	 */
	long countByCateId(int cateId);

	/**
	 * 条件查询
	 * 
	 * @param filter
	 * @return
	 */
	List<Goods> findByCondition(@Param("filter") GoodsFilter filter);
}
